package com.meusdrinks.domain;

import static javax.persistence.GenerationType.SEQUENCE;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

@Entity
public class Drink {
	
	@Id
	@GeneratedValue(strategy = SEQUENCE)
	private Long id;
	
	@ManyToOne
	private Usuario criador;
	
	@Column
	private Integer qtdAvaliacoes;
	
	@Column
	private Integer somaNotas;
	
	@NotEmpty
	@Length(max=50)
	private String nome;
	
	@OneToMany (mappedBy="drink", fetch=FetchType.EAGER)
	private List<IngredienteDrink> composicao;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Usuario getCriador() {
		return criador;
	}

	public void setCriador(Usuario criador) {
		this.criador = criador;
	}

	public Integer getQtdAvaliacoes() {
		return qtdAvaliacoes;
	}

	public void setQtdAvaliacoes(Integer qtdAvaliacoes) {
		this.qtdAvaliacoes = qtdAvaliacoes;
	}

	public Integer getSomaNotas() {
		return somaNotas;
	}

	public void setSomaNotas(Integer somaNotas) {
		this.somaNotas = somaNotas;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public List<IngredienteDrink> getComposicao() {
		return composicao;
	}

	public void setComposicao(List<IngredienteDrink> composicao) {
		this.composicao = composicao;
	}
	
	
}
